home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1999 March / EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso / earcd / devel / libx11 / include / x11 / xaw / pannerp.h < prev    next >
C/C++ Source or Header  |  1999-01-01  |  4KB  |  101 lines

  1. /*
  2.  * $XConsortium: PannerP.h,v 1.18 90/04/11 17:05:11 jim Exp $
  3.  *
  4.  * Copyright 1989 Massachusetts Institute of Technology
  5.  *
  6.  * Permission to use, copy, modify, distribute, and sell this software and its
  7.  * documentation for any purpose is hereby granted without fee, provided that
  8.  * the above copyright notice appear in all copies and that both that
  9.  * copyright notice and this permission notice appear in supporting
  10.  * documentation, and that the name of M.I.T. not be used in advertising or
  11.  * publicity pertaining to distribution of the software without specific,
  12.  * written prior permission.  M.I.T. makes no representations about the
  13.  * suitability of this software for any purpose.  It is provided "as is"
  14.  * without express or implied warranty.
  15.  *
  16.  * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  17.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
  18.  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  19.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  20.  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
  21.  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  22.  *
  23.  * Author:  Jim Fulton, MIT X Consortium
  24.  */
  25.  
  26. #ifndef _XawPannerP_h
  27. #define _XawPannerP_h
  28.  
  29. #include <X11/Xaw/Panner.h>
  30. #include <X11/Xaw/SimpleP.h>        /* parent */
  31.  
  32. typedef struct {            /* new fields in widget class */
  33.     int dummy;
  34. } PannerClassPart;
  35.  
  36. typedef struct _PannerClassRec {    /* Panner widget class */
  37.     CoreClassPart core_class;
  38.     SimpleClassPart simple_class;
  39.     PannerClassPart panner_class;
  40. } PannerClassRec;
  41.  
  42. typedef struct {            /* new fields in widget */
  43.     /* resources... */
  44.     XtCallbackList report_callbacks;    /* callback/Callback */
  45.     Boolean allow_off;            /* allowOff/AllowOff */
  46.     Boolean resize_to_pref;        /* resizeToPreferred/Boolean */
  47.     Pixel foreground;            /* foreground/Foreground */
  48.     Pixel shadow_color;            /* shadowColor/ShadowColor */
  49.     Dimension shadow_thickness;        /* shadowThickness/ShadowThickness */
  50.     Dimension default_scale;        /* defaultScale/DefaultScale */
  51.     Dimension line_width;        /* lineWidth/LineWidth */
  52.     Dimension canvas_width;        /* canvasWidth/CanvasWidth */
  53.     Dimension canvas_height;        /* canvasHeight/CanvasHeight */
  54.     Position slider_x;            /* sliderX/SliderX */
  55.     Position slider_y;            /* sliderY/SliderY */
  56.     Dimension slider_width;        /* sliderWidth/SliderWidth */
  57.     Dimension slider_height;        /* sliderHeight/SliderHeight */
  58.     Dimension internal_border;        /* internalBorderWidth/BorderWidth */
  59.     String stipple_name;        /* backgroundStipple/BackgroundStipple */
  60.     /* private data... */
  61.     GC slider_gc;            /* background of slider */
  62.     GC shadow_gc;            /* edge of slider and shadow */
  63.     GC xor_gc;                /* for doing XOR tmp graphics */
  64.     double haspect, vaspect;        /* aspect ratio of core to canvas */
  65.     Boolean rubber_band;        /* true = rubber band, false = move */
  66.     struct {
  67.     Boolean doing;            /* tmp graphics in progress */
  68.     Boolean showing;        /* true if tmp graphics displayed */
  69.     Position startx, starty;    /* initial position of slider */
  70.     Position dx, dy;        /* offset loc for tmp graphics */
  71.     Position x, y;            /* location for tmp graphics */
  72.     } tmp;
  73.     Position knob_x, knob_y;        /* real upper left of knob in canvas */
  74.     Dimension knob_width, knob_height;    /* real size of knob in canvas */
  75.     Boolean shadow_valid;        /* true if rects are valid */
  76.     XRectangle shadow_rects[2];        /* location of shadows */
  77.     Position last_x, last_y;        /* previous location of knob */
  78. } PannerPart;
  79.  
  80. typedef struct _PannerRec {
  81.     CorePart core;
  82.     SimplePart simple;
  83.     PannerPart panner;
  84. } PannerRec;
  85.  
  86. #define PANNER_HSCALE(pw,val) ((pw)->panner.haspect * ((double) (val)))
  87. #define PANNER_VSCALE(pw,val) ((pw)->panner.vaspect * ((double) (val)))
  88.  
  89. #define PANNER_DSCALE(pw,val) (Dimension)  \
  90.   ((((unsigned long) (val)) * (unsigned long) pw->panner.default_scale) / 100L)
  91. #define PANNER_DEFAULT_SCALE 8        /* percent */
  92.  
  93. #define PANNER_OUTOFRANGE -30000
  94.  
  95. /*
  96.  * external declarations
  97.  */
  98. extern PannerClassRec pannerClassRec;
  99.  
  100. #endif /* _XawPannerP_h */
  101.